#pragma once
#include <QString>
#pragma once
#include "ISensor.h"
#include <QObject>


namespace NOpenHardwareMonitor {

namespace NHardware {


class CSensorPrivate;
class CHardware;


class CSensor
	: public QObject
	, public ISensor
{
	Q_OBJECT


public:
	CSensor(CHardware* Hardware, const qint32& Index);
private:
	~CSensor();


public:
	virtual void Release() override;


public:
	virtual EType GetType() const override;

	virtual void ResetMin() override;
	virtual void ResetMax() override;

	virtual qint32 GetHashCode() const override;
	virtual QString GetIdentifier() const override;
	virtual qint32 GetIndex() const override;
	virtual bool IsDefaultHidden() const override;
	virtual float GetMax() const override;
	virtual float GetMin() const override;
	virtual QString GetName() const override;
	virtual float GetValue() const override;


private:
	QScopedPointer<CSensorPrivate> d_ptr;
	Q_DECLARE_PRIVATE(CSensor)
};


}}

